使用案例圖從使用者的角度描述系統的功能需求,展示「誰」可以做「什麼」。它是需求分析階段最重要的工具之一。
定義:與系統互動的外部實體(人、其他系統、硬體等)
表示法:火柴人符號或方框(「方框」通常用於非人類/系統參與者)
 ┌─────┐
 │使用者│  ← 人類參與者
 └─────┘
 ┌─────────┐
 │外部系統 │  ← 系統參與者
 └─────────┘
類型:
定義:系統提供的一個功能或服務
表示法:橢圓形,內含功能名稱
╭─────────────────╮
│  使用案例名稱    │
╰─────────────────╯
命名原則:
✅ 好的命名:「查詢訂單」、「更新個人資料」、「產生報表」
❌ 不好的命名:「訂單」、「資料」、「系統處理」
定義:界定系統的範圍
表示法:矩形框,框內是系統提供的功能
┌──────────────────────┐
│   系統名稱           │
│  ○ 功能1             │
│  ○ 功能2             │
│                      │
└──────────────────────┘
符號:實線
意義:參與者與使用案例之間的互動
 ┌─────┐
 │使用者│────────>○ 登入系統
 └─────┘
符號:虛線 + <<include>>
意義:基礎使用案例必定會執行的子功能
使用時機:
  ○ 結帳
     │
     │ <<include>>
     ▽
  ○ 驗證登入狀態
範例:結帳功能必定要先驗證使用者是否已登入。
符號:虛線 + <<extend>>
意義:基礎使用案例的可選額外功能
使用時機:
  ○ 結帳
     △
     │ <<extend>>
     │
  ○ 使用優惠券
範例:結帳時,使用者「可以選擇」使用優惠券,也可以不使用。
符號:實線三角箭頭
意義:繼承關係,表示特殊化
用於參與者:
     ┌─────┐
     │使用者│
     └─────┘
        △
   ┌────┴────┐
   │         │
┌─────┐  ┌─────┐
│會員 │  │訪客 │
└─────┘  └─────┘
用於使用案例:
     ○ 付款
        △
   ┌────┴────┐
   │         │
○ 信用卡   ○ 行動支付
  付款       付款
設計一個線上購物平台,需要支援以下功能:
會員功能:
管理員功能:
系統功能:
                        ┌────────────────────────────────┐
                        │      線上購物系統               │
                        │                                │
     ┌─────┐            │  ○ 瀏覽商品                     │
     │顧客 │───────────>│                                │
     └─────┘            │  ○ 加入購物車                   │
        │               │                                │
        │               │  ○ 結帳                         │
        │               │       △                        │
        └──────────────>│       │ <<include>>            │
                        │       │                        │
                        │  ○ 選擇配送方式                 │
                        │       △                        │
                        │       │ <<include>>            │
                        │       │                        │
                        │  ○ 付款                        │
                        │       │                        │
                        │       │ <<extend>>             │
                        │       ▽                        │
                        │  ○ 使用優惠券                   │
                        │                                │
        ┌──────────────>│  ○ 查看訂單歷史                 │
        │               │                                │
        │               │  ○ 管理商品                     │
        │               │                                │
     ┌─────────┐        │  ○ 管理會員                     │
     │管理員   │        │                                 │
     └─────────┘        │  ○ 查看所有訂單                 │
        │               │                                │
        └──────────────>│                                │
                        │                                │
                        │  ○ 發送確認郵件 ─────────────────┤
                        │       △                        │
                        │       │ <<include>>            │
     ┌──────────┐       │       │                        │
     │郵件系統  │<──────┤  ○ 結帳                         │
     └──────────┘       │                                │
                        │                                │
     ┌──────────┐       │  ○ 更新庫存 ────────────────────┤
     │庫存系統  │<──────┤       △                        │
     └──────────┘       │       │ <<include>>            │
                        │       │                        │
                        │  ○ 結帳                        │
                        │                                │
                        └────────────────────────────────┘
使用案例圖只是視覺化的概覽,每個使用案例都應該有詳細的文字描述。
| 項目 | 內容 | 
|---|---|
| 使用案例名稱 | 結帳 | 
| 使用案例 ID | UC-003 | 
| 參與者 | 顧客(主要)、郵件系統(次要)、庫存系統(次要) | 
| 簡述 | 顧客完成購物後,進行結帳流程,包含選擇配送方式和付款 | 
| 前置條件 | • 顧客已登入• 購物車中至少有一件商品 | 
| 後置條件 | • 訂單已建立• 庫存已更新• 顧客收到確認郵件 | 
主要流程:
替代流程:
3a. 顧客未登入
4a. 顧客沒有儲存的地址
5a. 顧客選擇使用優惠券(擴展:使用優惠券)
5b. 付款失敗
例外流程:
E1. 商品庫存不足
E2. 系統錯誤
特殊需求:
✅ 好的做法:
❌ 避免的錯誤: